home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga2 / romsrc / sys / procs6_asm < prev    next >
Text File  |  2000-01-03  |  3KB  |  154 lines

  1. */beginfile PROCS6_asm
  2. ; --------------------------------------------------------------
  3. ; PROCS6_asm - BASIC bits
  4. ;        - last modified 27/08/95
  5. ; QDOS-Amiga sources by Rainer Kowallik
  6. ;    ...some changes by Mark J Swift
  7. ; --------------------------------------------------------------
  8. BAS_READ:
  9.     MOVE.L    A5,-(A7)
  10. L06860    CMPA.L    (A7),A3
  11.     BGE.S    L06886
  12.     JSR    L07A8E(PC)    ;*/undomodify BSR L07A8E
  13.     BNE.S    L06888
  14.     JSR    L066FA(PC)    ;*/undomodify BSR L066FA
  15.     BNE.S    L06888
  16.     MOVE.B    $01(A6,A3.L),D0
  17.     MOVE.L    A3,-(A7)
  18.     JSR    L05A84(PC)    ;*/undomodify BSR L05A84
  19.     MOVEA.L    (A7)+,A3
  20.     BNE.S    L06888
  21.     JSR    BP_LET(PC)    ;*/undomodify BSR BP_LET
  22.     ADDQ.W    #8,A3
  23.     BRA.S    L06860
  24. L06886    MOVEQ    #0,D0
  25. L06888    MOVEA.L    (A7)+,A5
  26.     RTS
  27. EXEC:
  28.     MOVEQ    #0,D5
  29.     BRA.S    L06892
  30. EXEC_W:
  31.     MOVEQ    #-1,D5
  32. L06892:
  33.     MOVEQ    #1,D4
  34.     BSR.L    L069C4
  35.     BNE.S    L068F8
  36.     MOVEQ    #$47,D0
  37.     MOVEQ    #$0E,D2
  38.     MOVEA.L    (A6),A1
  39.     BSR.L    TRAP_4_3
  40.     BNE.S    L06912
  41.     CMPI.B    #$01,-$09(A6,A1.L)
  42.     BNE.L    L06990
  43.     MOVEQ    #MT.CJOB,D0    ; create job in
  44.                 ; transient prog. area
  45.     MOVEQ    #-1,D1        ; owner of job
  46.     MOVE.L    -14(A6,A1.L),D2
  47.     MOVE.L    -8(A6,A1.L),D3
  48.     SUBA.L    A1,A1        ; start address
  49.     MOVEM.L    D2/A0/A3,-(A7)
  50.     TRAP    #1
  51.     MOVEA.L    A0,A1
  52.     MOVEM.L    (A7)+,D2/A0/A3
  53.     TST.L    D0
  54.     BNE.S    L06912
  55.     MOVE.L    D1,D6
  56.     MOVEQ    #$48,D0
  57.     BSR.L    BAS_TRAP3    ;*/note could be short
  58.     BSR.L    L0693A        ;*/undomodify BSR.S L0693A
  59.                 ;*/undomodify nop
  60.     BNE.S    L068FA
  61.     MOVEQ    #$0A,D0
  62.     MOVE.L    D6,D1
  63.     MOVEQ    #$20,D2
  64.     MOVE.L    D5,D3
  65.     TRAP    #1
  66.     TST.L    D0
  67.     BNE.S    L068FA
  68.     TST.L    D5
  69.     BNE.S    L068F8
  70.     MOVEQ    #MT.SUSJB,D0    ;suspend a job
  71.     MOVEQ    #-1,D1        ; me
  72.     MOVEQ    #$19,D3        ; timeout
  73.     SUBA.L    A1,A1        ; no flag
  74.     TRAP    #1
  75. L068F8:
  76.     RTS
  77. L068FA:
  78.     MOVE.L    D0,D4
  79.     MOVEQ    #MT.RJOB,D0    ;remove job
  80.     MOVE.L    D6,D1
  81.     TRAP    #1
  82.     MOVE.L    D4,D0
  83.     RTS
  84. BAS_LBYTes:
  85.     MOVEQ    #$01,D4
  86.     BSR    L069C4
  87.     BNE.S    L068F8
  88.     JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  89. L06912    BNE.S    L06986
  90.     SUBQ.W    #1,D3
  91.     BNE.S    L06990
  92.     BTST    #0,$03(A6,A1.L)
  93.     BNE.S    L06990
  94.     MOVEA.L    0(A6,A1.L),A1
  95.     ADDQ.L    #4,BV_RIP(A6)    ;arithmetic stack
  96.     MOVEQ    #$47,D0
  97.     moveq    #4,d2        ;*/modify MOVEQ #14,D2
  98.     MOVE.L    A1,-(A7)
  99.     BSR.S    BAS_TRAP3
  100.     MOVEA.L    (A7)+,A1
  101.     BNE.S    L06986
  102.     MOVE.L    (A1),D2
  103.     MOVEQ    #$48,D0
  104.     BSR.S    BAS_TRAP3
  105. L0693A    BRA.S    L06986
  106. BAS_SEXEc:
  107.     MOVEQ    #$01,D5
  108.     BRA.S    L06942
  109. BAS_SBYTes:
  110.     MOVEQ    #0,D5
  111. L06942    MOVE.L    A3,BV_PTEMP(A6)    ;Temp.pointer for GO.PROC
  112.     MOVEQ    #2,D4
  113.     BSR.S    L069C4
  114.     BNE.S    L0698E
  115.     JSR    CA_GTLIN(PC)    ;*/undomodify BSR CA_GTLIN
  116.     BNE.S    L06986
  117.     SUBQ.W    #2,D3
  118.     SUB.W    D5,D3
  119.     BNE.S    L0699A
  120.     MOVEA.L    0(A6,A1.L),A2
  121.     ADDQ.W    #2,A1
  122.     MOVE.L    2(A6,A1.L),0(A6,A1.L)
  123.     MOVE.W    D5,4(A6,A1.L)
  124.     MOVEQ    #FS.HEADS,D0    ;set file header
  125.     MOVE.L    A1,-(A7)
  126.     BSR.S    TRAP_4_3
  127.     MOVEA.L    (A7)+,A1
  128.     BNE.S    L06986
  129.     MOVE.L    0(A6,A1.L),D2
  130.     ADDQ.W    #6,A1
  131.     LSL.W    #4,D5
  132.     ADDA.W    D5,A1
  133.     MOVE.L    A1,BV_RIP(A6)    ;arithmetic stack
  134.     MOVEA.L    A2,A1        ; address of file
  135.     MOVEQ    #FS.SAVE,D0    ;save file from memory
  136.     BSR.S    BAS_TRAP3
  137. L06986    MOVE.L    D0,D4
  138. L06988    MOVEQ    #IO.CLOSE,D0
  139.     TRAP    #2
  140. L0698C    MOVE.L    D4,D0
  141. L0698E    RTS
  142. L06990    MOVEQ    #-15,D0
  143.     BRA.S    L06986
  144. L06994    ADDQ.W    #4,A7
  145. L06996    MOVEQ    #-15,D0
  146.     RTS
  147. L0699A    BSR.S    L06988
  148.     MOVEA.L    BV_PTEMP(A6),A3    ;temp. pointer for GO.PROC
  149.     BSR.S    BAS_DELEte
  150.     BRA.S    L06996
  151.  
  152. ; --------------------------------------------------------------
  153. ;*/endfile
  154.